home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 7: Sunsite / Linux Cubed Series 7 - Sunsite Vol 1.iso / system / shells / scsh-0.4 / scsh-0 / scsh-0.4.2 / scsh / bsd / netconst.scm < prev    next >
Text File  |  1995-11-04  |  6KB  |  140 lines

  1. ;;; Magic Numbers for Networking
  2. ;;; Copyright (c) 1994 by Brian D. Carlstrom.
  3.  
  4. ;;; magic numbers not from header file
  5. ;;; but from man page
  6. ;;; why can't unix make up its mind
  7. (define shutdown/receives 0)
  8. (define shutdown/sends 1)
  9. (define shutdown/sends+receives 2)
  10.  
  11. ;;;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  12. ;;; BELOW THIS POINT ARE BITS FROM:
  13. ;;; <sys/socket.h> 
  14. ;;; <sys/un.h> 
  15. ;;; <netinet/in.h>
  16. ;;; <netinet/tcp.h>
  17. ;;; <netdb.h>
  18. ;;;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  19.  
  20. ;;; ADDRESS FAMILIES -- <sys/socket.h>
  21. (define address-family/unspecified 0)    ; unspecified
  22. (define address-family/unix 1)        ; local to host (pipes, portals)
  23. (define address-family/internet 2)    ; internetwork: UDP, TCP, etc.
  24.  
  25. ;;; SOCKET TYPES -- <sys/socket.h>
  26. (define socket-type/stream 1)        ; stream socket 
  27. (define socket-type/datagram 2)        ; datagram socket
  28. (define socket-type/raw 3)        ; raw-protocol interface
  29. ;;(define socket-type/rdm 4)        ; reliably-delivered message
  30. ;;(define socket-type/seqpacket 5)      ; sequenced packet stream
  31.  
  32. ;;; PROTOCOL FAMILIES -- <sys/socket.h>
  33. (define protocol-family/unspecified 0)    ; unspecified
  34. (define protocol-family/unix 1)        ; local to host (pipes, portals)
  35. (define protocol-family/internet 2)    ; internetwork: UDP, TCP, etc.
  36.  
  37. ;;; Well know addresses -- <netinet/in.h>
  38. (define internet-address/any #x00000000)
  39. (define internet-address/loopback #x7f000001)
  40. (define internet-address/broadcast #xffffffff)    ; must be masked
  41.  
  42. ;;; errors from host lookup -- <netdb.h>
  43. (define    herror/host-not-found 1) ;Authoritative Answer Host not found
  44. (define    herror/try-again   2) ;Non-Authoritive Host not found, or SERVERFAIL
  45. (define    herror/no-recovery 3) ;Non recoverable errors, FORMERR, REFUSED, NOTIMP
  46. (define    herror/no-data     4) ;Valid name, no data record of requested type
  47. (define    herror/no-address herror/no-data) ;no address, look for MX record
  48.  
  49. ;;; flags for send/recv -- <sys/socket.h>
  50. (define message/out-of-band  1) ; process out-of-band data
  51. (define message/peek         2) ; peek at incoming message
  52. (define message/dont-route   4) ; send without using routing tables
  53. (define    message/eor          8) ; data completes record
  54. (define    message/trunc      #x10)    ; data discarded before delivery
  55. (define    message/ctrunc      #x20)    ; control data lost before delivery
  56. (define    message/wait-all  #x40)    ; wait for full request or error
  57. (define    message/dont-wait #x80)    ; this message should be nonblocking
  58.  
  59. ;;; protocol level for socket options -- <sys/socket.h>
  60. (define level/socket #xffff)        ; SOL_SOCKET: options for socket level
  61.  
  62. ;;; socket options -- <sys/socket.h>
  63. (define socket/debug #x0001)        ; turn on debugging info recording 
  64. (define socket/accept-connect #x0002)    ; socket has had listen() 
  65. (define socket/reuse-address #x0004)    ; allow local address reuse 
  66. (define socket/keep-alive #x0008)    ; keep connections alive 
  67. (define socket/dont-route #x0010)    ; just use interface addresses 
  68. (define socket/broadcast #x0020)    ; permit sending of broadcast msgs 
  69. (define socket/use-loop-back #x0040)    ; bypass hardware when possible 
  70. (define socket/linger    #x0080)        ; linger on close if data present 
  71. (define socket/oob-inline #x0100)    ; leave received OOB data in line 
  72. (define socket/reuse-port #x0200)    ; allow local address & port reuse
  73. ;(define socket/use-privileged #x4000)    ; allocate from privileged port area 
  74. ;(define socket/cant-signal #x8000)    ; prevent SIGPIPE on SS_CANTSENDMORE 
  75. (define socket/send-buffer #x1001)    ; send buffer size 
  76. (define socket/receive-buffer #x1002)    ; receive buffer size 
  77. (define socket/send-low-water #x1003)    ; send low-water mark 
  78. (define socket/receive-low-water #x1004) ; receive low-water mark 
  79. (define socket/send-timeout #x1005)    ; send timeout 
  80. (define socket/receive-timeout #x1006)    ; receive timeout 
  81. (define socket/error #x1007)        ; get error status and clear 
  82. (define socket/type #x1008)        ; get socket type 
  83.  
  84. ;;; ip options -- <netinet/in.h>
  85. (define    ip/options        1    ) ; buf/ip/opts; set/get ip options
  86. (define    ip/header-included    2    ) ; int; header is included with data
  87. (define    ip/type-of-service    3    ) ; int; ip type of service and preced.
  88. (define    ip/time-to-live        4    ) ; int; ip time to live
  89. (define    ip/receive-options    5    ) ; bool; receive all ip opts w/dgram
  90. (define    ip/response-options    6    ) ; bool; receive ip opts for response
  91. (define    ip/destination-address    7    ) ; bool; receive ip dst addr w/dgram
  92. (define    ip/ret-options        8    ) ; ip_opts; set/get ip options
  93. (define    ip/multicast-if        9    ) ; u_char; set/get ip multicast i/f 
  94. (define    ip/multicast-ttl    10   ) ; u_char; set/get ip multicast ttl
  95. (define    ip/multicast-loop    11   ) ; u_char; set/get ip multicast loopback
  96. (define    ip/add-membership    12   ) ; ip_mreq; add an ip group membership
  97. (define    ip/drop-membership    13   ) ; ip_mreq; drop an ip group membership
  98.  
  99. ;;; tcp options -- <netinet/tcp.h>
  100. (define tcp/no-delay #x01)        ; don't delay send to coalesce packets
  101. (define tcp/max-segment #x02)        ; set maximum segment size
  102.  
  103. ;;; -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  104. ;;; OPTION SETS FOR SOCKET-OPTION AND SET-SOCKET-OPTION
  105.  
  106. ;;; Boolean Options
  107. (define options/boolean
  108.   (list socket/debug
  109.     socket/accept-connect
  110.     socket/reuse-address
  111.     socket/keep-alive
  112.     socket/dont-route
  113.     socket/broadcast
  114.     socket/use-loop-back
  115.     socket/oob-inline
  116.     socket/reuse-port        ;BSD4.4-Lite
  117. ;    socket/use-privileged
  118. ;    socket/cant-signal
  119.     tcp/no-delay))
  120.  
  121. ;;; Integer Options
  122. (define options/value
  123.   (list socket/send-buffer
  124.     socket/receive-buffer
  125.     socket/send-low-water
  126.     socket/receive-low-water
  127.     socket/error
  128.     socket/type
  129.     ip/time-to-live
  130.     tcp/max-segment))
  131.  
  132. ;;; #f or Positive Integer
  133. (define options/linger
  134.   (list socket/linger))
  135.  
  136. ;;; Real Number
  137. (define options/timeout
  138.   (list socket/send-timeout
  139.     socket/receive-timeout))
  140.